This invention relates to testing volatile memory elements, and more particularly, to testing configuration random-access memory in integrated circuits such as programmable logic device integrated circuits.
Integrated circuits often contain volatile memory elements. In programmable logic devices, volatile memory elements are used to store configuration data. This type of memory is often referred to as configuration random-access memory (CRAM).
Programmable logic devices are a type of integrated circuit that can be customized in relatively small batches to implement a desired logic design. In a typical scenario, a programmable logic device manufacturer designs and manufactures uncustomized programmable logic device integrated circuits in advance. Later, a logic designer uses a logic design system to design a custom logic circuit. The logic design system uses information on the hardware capabilities of the manufacturer's programmable logic devices to help the designer implement the logic circuit using the resources available on a given programmable logic device.
The logic design system creates configuration data based on the logic designer's custom design. When the configuration data is loaded into the configuration random-access memory elements of one of the programmable logic devices, it programs the logic of that programmable logic device so that the programmable logic device implements the designer's logic circuit. The use of programmable logic devices can significantly reduce the amount of effort required to implement a desired integrated circuit design.
Programmable logic devices are tested during manufacturing. Some programmable logic devices contain redundant circuitry. If testing reveals that a device contains a defect, the device can be repaired by switching the redundant circuitry into use. When testing identifies a defect that cannot be repaired, the device may be discarded. After testing and any necessary repairs have been completed, the device can be programmed for normal operation in a system.
Conventional techniques for testing configuration random-access memory elements are generally not able to detect all faults. Some faults, such as those that arise only under certain circuit conditions, may therefore go undetected when subjected to conventional testing.
It would therefore be desirable to be able to provide improved techniques for testing configuration random-access memory on integrated circuits such as programmable logic device integrated circuits.